package com.storage.system.mapper;

import com.storage.system.domain.StoragePropertiesValue;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 属性选项 数据层
 * 
 * @author storage
 * @date 2019-08-18
 */
public interface StoragePropertiesValueMapper 
{
	/**
     * 查询属性选项信息
     * 
     * @param id 属性选项ID
     * @return 属性选项信息
     */
	public StoragePropertiesValue selectStoragePropertiesValueById(Long id);
	
	/**
     * 查询属性选项列表
     * 
     * @param storagePropertiesValue 属性选项信息
     * @return 属性选项集合
     */
	public List<StoragePropertiesValue> selectStoragePropertiesValueList(StoragePropertiesValue storagePropertiesValue);
	
	/**
     * 新增属性选项
     * 
     * @param storagePropertiesValue 属性选项信息
     * @return 结果
     */
	public int insertStoragePropertiesValue(StoragePropertiesValue storagePropertiesValue);
	
	/**
     * 修改属性选项
     * 
     * @param storagePropertiesValue 属性选项信息
     * @return 结果
     */
	public int updateStoragePropertiesValue(StoragePropertiesValue storagePropertiesValue);
	
	/**
     * 删除属性选项
     * 
     * @param id 属性选项ID
     * @return 结果
     */
	public int deleteStoragePropertiesValueById(Long id);

	/**
	 * 批量删除属性选项
	 *
	 * @param ids 需要删除的数据ID
	 * @return 结果
	 */
	public int deleteStoragePropertiesValueByIds(String[] ids);

	/**
	 * 批量删除属性选项
	 *
	 * @param ids 需要删除的数据ID
	 * @return 结果
	 */
	public int deleteStoragePropertiesValueByIdList(@Param("ids") List<Long> ids);

	/**
	 * 根据属性id删除属性选项
	 *
	 * @param propertiesId
	 * @return
	 */
    int deleteByPropertiesId(Long propertiesId);

	/**
	 * 删除属性选项
	 *
	 * @param propertiesId
	 * @param createUserId
	 * @param ownerType
	 * @return
	 */
    int deleteStoragePropertiesValuePropertiesId(@Param("propertiesId") Long propertiesId, @Param("createUserId") Long createUserId, @Param("ownerType") Integer ownerType);
}